package com.kx.my01;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @Component：创建对象的，等同于<bean></bean>的功能 属性：value就是对象的名称，也就是bean的id值，
 * value的值唯一的，创建的对象在Spring容器中就一个
 * @Component(value = "myStudent")等同于
 * <bean id="myStudent" class="com.kx.my01.Student"/>
 *
 * spring中和@Component功能一致，创建对象的注解还有：
 * 1、@Repository（用在持久层类的上面）：放在dao的实现类上面，表示创建dao对象，dao对象是能访问数据库的。
 * 2、@Service（用在业务层类的上面）：放在service的实现类上面，创建service对象，service对象是做业务处理，可以有事务等功能。
 * 3、@Controller（用在控制器上面）：放在控制器类的上面，创建controller对象的，控制器对象，是接收用户提交的参数，显示请求的处理结果
 * 以上三个注解的使用语法和@component一样，都能创建对象，但是这三个注解还有额外的功能。
 * @Repository，@Service，@Controller是给项目分层的
 *
 */

//@Component
@Component(value = "myStudent")
public class Student {
    @Value("lisi")
    private String name;
    @Value("1001")
    private Integer id;

    public Student() {
        System.out.println("Student无参构造");
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", id=" + id +
                '}';
    }
}
